<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>定位服务</title>
    <link rel="stylesheet" href="http://cache.amap.com/lbs/static/main1119.css"/>

    <script type="text/javascript"
            src='//webapi.amap.com/maps?v=1.3&key=c76df1373d9f8adca55f7f7bebae5f70&plugin=AMap.Geocoder'></script>
    <script src="//webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>
    <script type="text/javascript" src="https://cache.amap.com/lbs/static/addToolbar.js"></script>

    <script src="http://cache.amap.com/lbs/static/es5.min.js"></script>
    <script src="./js/jquery-3.5.1.js"></script>
    <style>
        #container {
            width: 300px;
            height: 180px;
        }
    </style>
</head>
<body>
<div id="container">
    <span id="result"></span>
</div>

<script>

    var map, geolocation;
    var marker = new AMap.Marker({
        position: new AMap.LngLat(104.062698, 30.538107),   // 经纬度对象，也可以是经纬度构成的一维数组[116.39, 39.9]
        title: '菁蓉汇'
    });
    map = new AMap.Map('container', {
        resizeEnable: true,
        // center: [104.062698, 30.538107],
        layers: [//使用多个图层
            new AMap.TileLayer.Satellite(),
            new AMap.TileLayer.RoadNet()
        ],
        zooms: [4, 18],//设置地图级别范围
        zoom: 13
    });
    map.plugin('AMap.Geolocation', function () {
        geolocation = new AMap.Geolocation({
            enableHighAccuracy: true,//是否使用高精度定位，默认:true
            timeout: 10000,          //超过10秒后停止定位，默认：无穷大
            maximumAge: 0,           //定位结果缓存0毫秒，默认：0
            convert: true,           //自动偏移坐标，偏移后的坐标为高德坐标，默认：true
            showButton: true,        //显示定位按钮，默认：true
            buttonPosition: 'LB',    //定位按钮停靠位置，默认：'LB'，左下角
            buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量，默认：Pixel(10, 20)
            showMarker: true,        //定位成功后在定位到的位置显示点标记，默认：true
            showCircle: true,        //定位成功后用圆圈表示定位精度范围，默认：true
            panToLocation: true,     //定位成功后将定位到的位置作为地图中心点，默认：true
            zoomToAccuracy: true      //定位成功后调整地图视野范围使定位位置及精度范围视野内可见，默认：false
        });
        map.add(marker);
        map.addControl(geolocation);
        // 获取用户当前的精确位置信息
        // 当回调函数中的status为complete的时候表示定位成功,result为GeolocationResult对象;
        // 当回调函数中的status为error的时候表示定位失败，result为GeolocationError对象;
        geolocation.getCurrentPosition();
        AMap.event.addListener(geolocation, 'complete', onComplete);//返回定位信息
        AMap.event.addListener(geolocation, 'error', onError);      //返回定位出错信息

    });

    function onComplete(data) {
        var str = ['定位成功'];
        //获取当前位置
        //所在省份
        var province = data.addressComponent.province;
        alert(str);

    }

    function onError(data) {

    }

    // function onComplete(data) {
    //     var str=['定位成功'];
    //     str.push('经度：' + data.position.get);
    //     str.push('纬度：' + data.position.getLat());
    //     lnglatXY = [data.position.getLng(),data.position.getLat()]; //已知点坐标
    //     regeocoder(lnglatXY);
    //     if(data.accuracy){
    //         str.push('精度：' + data.accuracy + ' 米');
    //     }//如为IP精确定位结果则没有精度信息
    //     str.push('是否经过偏移：' + (data.isConverted ? '是' : '否'));
    //     document.getElementById('result').innerHTML = str.join('<br>');
    // }
    // //解析定位错误信息
    // function onError(data) {
    //     document.getElementById('result').innerHTML = '定位失败';
    // }
    //
    //
    // function regeocoder(loc) {  //逆地理编码
    //     var geocoder = new AMap.Geocoder({
    //         radius: 1000,
    //         extensions: "all"
    //     });
    //     geocoder.getAddress(loc, function(status, result) {
    //         if (status === 'complete' && result.info === 'OK') {
    //             console.dir(result);
    //             geocoder_CallBack(result);
    //         }
    //     });
    //     var marker = new AMap.Marker({  //加点
    //         map: map,
    //         position: loc
    //     });
    //     map.setFitView();
    // }
    // function geocoder_CallBack(data) {
    //     var address = data.regeocode.formattedAddress; //返回地址描述
    //     // document.getElementById("result").innerHTML = address;
    //     alert(address)
    // }
</script>

</body>
</html>